package com.xbongbong.pro.statistic.model;

import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.DataWarningHistoryEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName DataWarningHistoryModel
 * @Description 数据预警历史记录
 * @Author mengna.Deng
 * @Date 2021/4/15 19:33
 * @Version 1.0
 */
public interface DataWarningHistoryModel extends IModel<DataWarningHistoryEntity> {
    /**
     * 保存设置
     *
     * @param entity 实体
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:33
     * @since v1.0
     * @version v1.0
     */
    Integer save(DataWarningHistoryEntity entity);
    /**
     * 批量插入
     *
     * @param entityList 实体列表
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:33
     * @since v1.0
     * @version v1.0
     */
    void insertBatch(List<DataWarningHistoryEntity> entityList);

    @Override
    List<DataWarningHistoryEntity> findEntitys(Map<String, Object> param);

    /**
     * 获取实体
     *
     * @param key 数据预警id
     * @param corpid 公司id
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:33
     * @since v1.0
     * @version v1.0
     */
    DataWarningHistoryEntity getByKey(Long key, String corpid);
    /**
     * 批量失效
     * @param
     * @return
     * @throws
     * @author mengna.Deng
     * @date 2021/4/15 19:33
     * @since v1.0
     * @version v1.0
     */
    void invalidBatch(String corpid, List<Long> idIn);
    /**
     * 根据预警id查询最近3条预警历史
     * @param corpid
     * @param dataWarningId
     * @return
     */
    List<DataWarningHistoryEntity> queryByDataWarningId(String corpid, Long dataWarningId, Integer num);

    /**
     * 获取该公司今天已经执行的预警次数
     * @param corpid
     * @return
     */
    Integer getTodayExecutedCount(String corpid);

    /**
     * 批量删除历史记录
     */
    /**
     * 物理删除
     * 直接删除这条记录
     * @param corpidIn 公司
     * @return 删除结果
     */
    Integer batchPhysicalDelete(Long endTime,List<String> corpidIn);
}
